#include <head.h>

// 声明定义一个线程函数
void * Func(void * arg)
{
    int * val = (int *)arg;
    printf("我是一个线程\n");
    // 三种方法
    // 1 用动态空间 
    // 2 使用静态变量
    // 3 通过参数
    // 4 通过全局  线程间通讯
    *val = 80;
    return (void *)val;
}



int main(int argc, char const *argv[])
{
    pthread_t tid = 0;
    int num = 0;
    // 创建一个线程
    pthread_create(&tid , NULL , Func , (void *)&num);
    
    
    void * retu;
    // 让主线程 或 进程等待 线程 完成运行后进行释放 
    pthread_join(tid , &retu);
    int * val = retu;
    printf("val = %d\n" , *val);
    printf("num = %d\n" , num);
    
    // 分离态   只具备让操作系统回收线程资源的功能 不具备等待线程运行完成的功能
    // pthread_detach(tid);

    // 模拟代码运行
    sleep(1);

    return 0;
}